package com.cy;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

import java.util.Map;

/**
 * 通过此案例演示rest请求的服务消费方的处理
 */
@RestController
@RequestMapping("/consumer/template/")
public class RestConsumerController演示rest请求的增删改实现 {

    @Autowired
    private RestTemplate loadBalancedRestTemplate;

    @DeleteMapping("{id}")//删除请求
    public String doDelete(@PathVariable Integer id) {
        String url = String.format("http://%s/provider/template/%s", "nacos-provider", id);
        loadBalancedRestTemplate.delete(url);
        return "delete ok";
    }

    @PostMapping//添加请求
    public String doPost(@RequestBody Map<String, Object> map) {
        //定义服务提供方的url
        String url = String.format("http://%s/provider/template/", "nacos-provider");

//url--定义的url,map--表示要提交到服务提供方的数据，String.class--表示服务提供方返回结果的类型
        return loadBalancedRestTemplate.postForObject(url, map, String.class);
    }

    @PutMapping//更新请求
    public String doPut(@RequestBody Map<String, Object> map) {
        //定义服务提供方的url
        String url = String.format("http://%s/provider/template/{id}", "nacos-provider");
        //map--表示要提交给服务提供方的数据
        //第三个参数用法--把 10 先传给url的{id},再传给服务提供方的{id}
        loadBalancedRestTemplate.put(url, map, 10);
        return "更新ok";
    }
}
